<template>
  <div id="app">
    <van-nav-bar
      :title="$route.meta.title"
      v-show="$route.meta.isShowNav"
      @click-left="onClickLeft"
      :left-arrow="$route.meta.isShowBack"
      fixed
      placeholder
      style="height: 46px"
    ></van-nav-bar>

    <router-view></router-view>
    <tab-bar v-if="isShowTabbar"></tab-bar>
  </div>
</template>

<script setup>
import TabBar from "./components/TabBar.vue";
import { useRoute } from "vue-router";
import { ref, watch, onMounted } from "vue";
import { useRouter } from "vue-router";
import { getUser } from "./api";
import useUser from "./stores/user";
const { user, updateUser } = useUser();
const route = useRoute();
const isShowTabbar = ref(true);
const router = useRouter();
onMounted(() => {
  if (user.isLogin) {
    loadUser();
  }
});
const loadUser = async () => {
  const data = await getUser();
  updateUser({
    isLogin: true,
    username: data.username,
    avatar: data.avatar,
  });
};
const onClickLeft = () => {
  if (window.history.length > 1) {
    router.back();
  } else {
    router.push({ name: "home" });
  }
};
//监听路由中的isTab是否为TRUE，如果是TRUE，展示底部TabBar
watch(
  () => route.meta,
  (val) => {
    isShowTabbar.value = val.isTab;
  }
);
</script>
<style>
#app {
  color: #2c3e50;
  line-height: 24px;
  --van-nav-bar-background: #ff8000;
  --van-nav-bar-title-text-color: #fff;
  --van-nav-bar-icon-color: #fff;
}
</style>